import Vue from 'vue'
import Vuex from 'vuex'
import mutations from "./mutations";
import actions from "./actions";
import getters from "./getters";
import moduleA from "./modules/moduleA";

// 1.安装插件
 Vue.use(Vuex)

//2.创建对象


const state = {
  token: localStorage.getItem("token"),
  userInfo:
  //反序列化  因为存进去的时候是 序列化了
    JSON.parse(sessionStorage.getItem("userInfo")),
  permissions:JSON.parse(sessionStorage.getItem("permissions")),
  menuList:JSON.parse(sessionStorage.getItem("menuList")),
  roleList:JSON.parse(sessionStorage.getItem("roleList")),
  router:JSON.parse(localStorage.getItem("router"))
}

const store = new Vuex.Store({
  //状态  存的是属性
  state,
  //用于改变state  方便vue.devtools监控
  //mutations中的方法必须的同步的
  // 如果是异步的话 vue.devtools不能跟踪到本次的变化
  mutations:mutations,
  // actions是替代mutations做异步操作的
  actions:actions,
  //get外界提供一个得到的方法（对内部属性做一些操作）
  getters:getters,
  //当state很多的时候  可以在modules中可以分模块
  modules:{
    //a模块
    a:moduleA
  }
})

// 3.导出
export default store
